package com.project.mapper;

import com.project.bean.ProductBean;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * 商品Mapper接口
 */
public interface IProductMapper {
    /**
     * 按商品id查询商品对象
     * @param id 商品id
     * @return 商品对象
     */
    @Select("select * from t_product where pk_proId = #{id}")
    @ResultMap("productMap")
    public ProductBean findById(int id);
    /**
     * 新增库存商品
     * @param product 商品对象
     */
    @Insert("INSERT INTO t_product(pk_proId,p_name,p_vender,p_type,p_buyPrice,p_sellPrice,p_imgPath,p_storeNum) VALUES(#{id},#{name},#{vender},#{type},#{buyPrice},#{sellPrice},#{photo},#{storeNum})")
    public void add(ProductBean product);

    /**
     * 按照商品id更新库存数量
     * @param proId 商品id
     * @param number 购买数量
     */
    @Update("update t_product set p_storeNum = p_storeNum + #{number} where pk_proId = #{proId}")
    public void updateStoreNum(@Param("proId") int proId, @Param("number") int number);

    /***
     *  动态条件查询库存信息
     * @param name 商品名字
     * @param type 商品类别
     * @param startNum 起始数量
     * @param endNum 结束数量
     * @return 商品集合
     */
    public List<ProductBean> findByItem(@Param("name") String name, @Param("type") String type,
                                        @Param("startNum") Integer startNum,
                                        @Param("endNum") Integer endNum);

    /**按商品id修改商品价格
     * @param productId 商品id
     * @param price 新的价格
     */
    @Update("update t_product set p_sellPrice = #{price} where pk_proId = #{productId} ")
    public void updatePrice(@Param("productId") int productId, @Param("price") int price);
}
